// DSCH 2.6b
// 28/07/02 00:38:37
// C:\Dsch2\Book on CMOS\Mux8to1Tgate.sch

module Mux8to1Tgate( in0,in7,in5,in4,in3,in2,in1,Sel0,
 Sel1,Sel2,Sel3,in6,f);
 input in0,in7,in5,in4,in3,in2,in1,Sel0;
 input Sel1,Sel2,Sel3,in6;
 output f;
 pmos #(31) pmos(f,w14,Sel2); // 2.0u 0.12u
 nmos #(31) nmos(f,w14,w15); // 1.0u 0.12u
 pmos #(38) pmos(w14,w16,w17); // 2.0u 0.12u
 nmos #(38) nmos(w14,w16,Sel1); // 1.0u 0.12u
 pmos #(38) pmos(w14,w18,Sel1); // 2.0u 0.12u
 nmos #(38) nmos(w14,w18,w17); // 1.0u 0.12u
 pmos #(31) pmos(f,w19,w15); // 2.0u 0.12u
 nmos #(31) nmos(f,w19,Sel2); // 1.0u 0.12u
 nmos #(38) nmos(w20,in7,Sel0); // 1.0u 0.12u
 pmos #(38) pmos(w20,in7,w21); // 2.0u 0.12u
 pmos #(38) pmos(w22,in5,w21); // 2.0u 0.12u
 nmos #(38) nmos(w22,in5,Sel0); // 1.0u 0.12u
 pmos #(38) pmos(w22,in4,Sel0); // 2.0u 0.12u
 nmos #(38) nmos(w22,in4,w21); // 1.0u 0.12u
 nmos #(38) nmos(w18,in0,w21); // 1.0u 0.12u
 pmos #(38) pmos(w18,in0,Sel0); // 2.0u 0.12u
 nmos #(38) nmos(w16,in2,w21); // 1.0u 0.12u
 pmos #(38) pmos(w16,in2,Sel0); // 2.0u 0.12u
 nmos #(38) nmos(w16,in3,Sel0); // 1.0u 0.12u
 pmos #(38) pmos(w16,in3,w21); // 2.0u 0.12u
 nmos #(38) nmos(w20,in6,w21); // 1.0u 0.12u
 pmos #(38) pmos(w20,in6,Sel0); // 2.0u 0.12u
 pmos #(38) pmos(w18,in1,w21); // 2.0u 0.12u
 nmos #(38) nmos(w18,in1,Sel0); // 1.0u 0.12u
 nmos #(38) nmos(w19,w20,Sel1); // 1.0u 0.12u
 pmos #(38) pmos(w19,w20,w17); // 2.0u 0.12u
 pmos #(38) pmos(w19,w22,Sel1); // 2.0u 0.12u
 nmos #(38) nmos(w19,w22,w17); // 1.0u 0.12u
 not #(31) inv(w17,Sel1);
 not #(59) inv(w21,Sel0);
 not #(17) inv(w15,Sel2);
endmodule

// Simulation parameters in Verilog Format
always
#1000 in0=~in0;
#2000 in7=~in7;
#3000 in5=~in5;
#4000 in4=~in4;
#5000 in3=~in3;
#6000 in2=~in2;
#7000 in1=~in1;
#1000 in6=~in6;

// Simulation parameters
// in0 CLK 10 10
// in7 CLK 20 20
// in5 CLK 30 30
// in4 CLK 40 40
// in3 CLK 50 50
// in2 CLK 60 60
// in1 CLK 70 70
// Sel0 CLK 80 80
// Sel1 CLK 90 90
// Sel2 GND
// Sel3 GND
// in6 CLK 10.000 10.000
